<?php

define ("YEAR_IN_SEC", 30758400);


session_start();

$l_role = -1;
$l_loged = false;
$err_login = false;

/* připojení do DB */
$link = db_connect();

/* připojení do DB konec --- */

/* uživatel již přihlášen?? */
if ($_SESSION['username'] && $_SESSION['loged'] && ($_SESSION['loged'] != 0)) {
    $sql = "SELECT * FROM user WHERE username='".$_SESSION['username']."' AND loged='".$_SESSION['loged']."'";
    $result = mysqli_query($link, $sql);
    if ($result) {
        $row = mysqli_fetch_assoc($result);
        if ($row) {
            $l_loged = true;
            $roles = $row['role_name'];
            $l_role = assignRole($roles);
        }
    }
/* další proměnné */
}

/* uživatel již přihlášen?? konec --- */



/* přihlášení - zapíše do session nahodný integer z databaze, v pripade, ze nema v DB integer, vytvori ho*/
if ($_POST['login_btn']) {
    $sql = "SELECT * FROM user WHERE username='".$_POST['username']."' AND pass='".hash("md5", $_POST['pass'])."'";
    $result = mysqli_query($link, $sql);
    if ($result) {
        $row = mysqli_fetch_assoc($result);
        if ($row) {
            $_SESSION['username'] = $_POST['username'];
            $l_loged = true;
            $roles = $row['role_name'];
            $l_role = assignRole($roles);
            if ($row['loged'] == 0) {
                $rand_int = rand(1, 10000000);
                $sql_update = "UPDATE user SET loged=".$rand_int." WHERE username = '".$_POST['username']."'";
                $result_update = mysqli_query($link, $sql_update);
                if (!$result_update){
                    logErr("ERR: ".date(DATE_RFC822)." - chyba v update DB - user - ".$_POST['username']." - zápis loged");
                }
                $_SESSION['loged'] = $rand_int;
            } else {
                $_SESSION['loged'] = $row['loged'];
            }
            if ($_POST['remember']) {
                setcookie("ukos_username", $_POST['username'], time()+YEAR_IN_SEC);
                setcookie("ukos_loged", $_SESSION['loged'], time()+YEAR_IN_SEC);
            }
        } else {
            $l_loged = false;
            $err_login = true;
        }
        mysqli_free_result($result);
    }
}
/* přihlášení - zapíše do session nahodný integer z databaze, v pripade, ze nema v DB integer, vytvori ho konec ---*/


/*automatické přihlášení pomocí cokies */
if ($_COOKIE['ukos_loged'] && $_COOKIE['ukos_username'] && ($_COOKIE['ukos_loged'] != 0)) {
    $sql = "SELECT * FROM user WHERE username='".$_COOKIE['ukos_username']."' AND loged='".$_COOKIE['ukos_loged']."'";
    $result = mysqli_query($link, $sql);
    if ($result) {
        $row = mysqli_fetch_assoc($result);
        if ($row) {
            $l_loged = true;
            $roles = $row['role_name'];
            $l_role = assignRole($roles);
            $_SESSION['username'] = $_COOKIE['ukos_username'];
        }
    }
}

/*automatické přihlášení pomocí cokies konec ---*/


/* odhlášení - odhlášení z jednoho PC nebo všech PC trvale(vymaže DB kod)!! */
if ($_POST['logout_btn']) {
    $_SESSION['loged'] = '';
    $l_loged = false;
    $l_role = -1;
    if ($_POST['forget']){
        $int = 0;
        if (isset($_COOKIE['ukos_username'])){
            $sql_update = "UPDATE user SET loged=".$int." WHERE username = '".$_COOKIE['ukos_username']."'";
            $result_update = mysqli_query($link, $sql_update);
            if (!$result_update) {
                logErr("ERR: ".date(DATE_RFC822)." - chyba v update DB - user - ".$_POST['username']." - výmaz loged");
            }
        } else {
            $sql_update = "UPDATE user SET loged=".$int." WHERE username = '".$_SESSION['username']."'";
            $result_update = mysqli_query($link, $sql_update);
            if (!$result_update) {
                logErr("ERR: ".date(DATE_RFC822)." - chyba v update DB - user - ".$_POST['username']." - výmaz loged");
            }
        }
    }
    $_SESSION['username'] = '';
    setcookie("ukos_username", "", date(DATE_COOKIE)-100);
    setcookie("ukos_loged", "", date(DATE_COOKIE)-100);
}
/* odhlášení - odhlášení z jednoho PC nebo všech PC trvale(vymaže DB kod)!! konec --- */

db_close($link);

function q($str){
    echo('<br>'.$str.'<br>');
}

function logErr($err){
    echo("Chyba");
}

function assignRole($rolestr) {
    if ($rolestr == 'admin') {
        return 10;
    } else {
        if ($rolestr == 'manager') {
            return 5;
        } else {
            if ($rolestr == 'uzivatel') {
                return 0;
            } else {
                return -1;
            }
        }
    }
}

?>
